Chapter 6 Synchronization Tools
Chapter 6 Synchronization Tools
Background
背景




生產者

消費者

競爭條件
- count++

- fork()

- count++
The Critical-Section Problem
關鍵區域



- Example

- Example
Solution


Peterson’s Solution
sol




example


現代框架可能不適用


- 雙方都進入CS



- 雙方都進入CS
Hardware Support for Synchronization
不同processor



三種硬體支援

記憶體屏障


- Example


- method

- Example
關鍵區域以及鎖

同步硬體


test and set


- 用法

- 用法
compare and swap


- 用法

- 用法
Swap


- 用法

- 用法
上述三者仍舊不圓滿

原子變數

- increment


- increment
Mutex Locks
互斥鎖

- 說明





- 說明
定義

Semaphores
信號量





更加廣泛



實作




- 說明





- 說明
問題

Monitors
- 監視器






條件
- 條件



- 順序



- A


- B


- 結論


- 順序
Example
- Example


實現monitor
- 實現monitor









錯誤使用monitor
- 錯誤使用monitor







Liveness
死鎖
飢餓 與 優先級導置
- Some level of priority inversion can not be avoided!!
Chapter 6 Synchronization Tools
https://z-hwa.github.io/webHome/[object Object]/Operation Systems/Chapter-6-Synchronization-Tools/











